<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    <meta name="author" content="Johannes Lehtinen"/>
    <meta name="copyright" content="Copyright 2007 Johannes Lehtinen"/>
    <meta name="keywords" content="C-Pluff,plug-in framework,plug-in,plugin framework,plugin,C,free software,open source"/>
    <meta name="identifier" content="http://www.c-pluff.org/index.en.html"/>
    <meta name="verify-v1" content="TJCP/6uZGEHJUCSPUk32yvXT6xwvnzC7INBhiIPsZ1A=" />
    <title>C-Pluff, a plug-in framework for C</title>
    <link rel="Stylesheet" type="text/css" href="cpluff_style.css"/>
  </head>
  <body>
    <div id="content">

    <h1>C-Pluff, a plug-in framework for C</h1>

    <ul class="menu">
      <li>C-Pluff</li>
      <li><a href="copyright.en.html">License</a></li>
      <li><a href="reference/c-api/index.html">Documentation</a></li>
      <li><a href="http://www.c-pluff.org/lists">Mailing lists</a></li>
      <li><a href="http://www.c-pluff.org/download">Download</a></li>
      <li><a href="http://www.c-pluff.org/repository">Repository</a></li>
    </ul>

    <h2 id="overview">Overview</h2>
    <p>
      C-Pluff is a plug-in framework for C programs.
      It has been strongly inspired by the Java plug-in framework in
      <a href="http://www.eclipse.org/">Eclipse</a>. C-Pluff focuses on
      providing core services for plug-in interaction and plug-in
      management. It aims to be platform neutral and supports dynamic
      changes to plug-in configuration without stopping the whole
      application or framework. It does not yet provide special facilities
      for distribution such as signed plug-in packages or remote plug-in
      repositories but it is possible to build such features on top of the
      current framework.
    </p>
    <p>
      The current C-Pluff implementation and documentation is very much
      work in progress so it should be considered early alpha stage software.
      I will be updating the documentation and source distribution on this
      site as I proceed with documentation and implementation.
      If you are interested in C-Pluff, take a look at
      <a href="reference/c-api/index.html">reference documentation</a>,
      join <a href="http://www.c-pluff.org/lists">mailing lists</a> or
      <a href="http://www.c-pluff.org/download">download it</a>. You can also send
      feedback, ideas and thoughts about such platform directly to the
      <a href="mailto:johannes.lehtinen@iki.fi">author</a>.
    </p>
    
    <h2 id="structure">Architecture</h2>
    <p>
      The plug-in architecture supported by C-Pluff is presented in the
      following figure. There is a thin main program controlling the plug-in
      framework. The main program is responsible for initializing and setting
      up the plug-in environment. Most of the application logic is contained in
      plug-ins which are independent components and can be developed and
      distributed separately. Plug-ins integrate with each other by providing
      extension points and extensions. An extension point is a point into which
      other plug-ins can attach extensions. An extension can be just
      information, expressed in XML format, or the plug-in may also provide
      program logic as part of the plug-in runtime library. The framework
      provides services for accessing extensions and for managing plug-in
      dependencies.
    </p>
    <p>
      <img src="img/architecture.png" alt="Plug-in architecture" />
    </p>

    <ul class="menu">
      <li>C-Pluff</li>
      <li><a href="copyright.en.html">License</a></li>
      <li><a href="reference/c-api/index.html">Documentation</a></li>
      <li><a href="http://www.c-pluff.org/lists">Mailing lists</a></li>
      <li><a href="http://www.c-pluff.org/download">Download</a></li>
      <li><a href="http://www.c-pluff.org/repository">Repository</a></li>
    </ul>

    <p class="footer">
      Copyright 2007 <a href="http://www.jlehtinen.net/">Johannes Lehtinen</a><br/>
      Validation:
        <a href="http://validator.w3.org/check?uri=referer">XHTML Basic 1.0</a>,
        <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS 2</a>
    </p>

    </div>
  </body>
</html>
